package com.igogogo.utils;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * properties文件获取工具类
 */
public class PropertyUtil {
	private static final Logger logger = LoggerFactory.getLogger(PropertyUtil.class);
	private static Properties props;

	private static void loadProps(String path) {
		logger.info("开始加载 " + path + " 文件内容...");
		props = new Properties();
		InputStream in = null;
		try {
			// 第一种，通过类加载器进行获取properties文件流
			in = PropertyUtil.class.getClassLoader().getResourceAsStream(path);
			// 第二种，通过类进行获取properties文件流
			// in = PropertyUtil.class.getResourceAsStream("/jdbc.properties");
			props.load(in);
		} catch (FileNotFoundException e) {
			logger.error(path + ":文件未找到");
		} catch (IOException e) {
			logger.error("出现IOException");
		} finally {
			try {
				if (null != in) {
					in.close();
				}
			} catch (IOException e) {
				logger.error(path + ":文件流关闭出现异常");
			}
		}
		logger.info("加载文件内容完成...");
	}

	/**
	 * @param path
	 *            jdbc.properties
	 * @param key
	 */
	public static String getProperty(String path, String key) {
		if (null == props) {
			loadProps(path);
		}
		return props.getProperty(key);
	}

	/**
	 * @param path
	 *            jdbc.properties
	 * @param key
	 * @param defaultValue
	 */
	public static String getProperty(String path, String key, String defaultValue) {
		if (null == props) {
			loadProps(path);
		}
		return props.getProperty(key, defaultValue);
	}
}
